﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace CMS_GYM
{
    public partial class frmKhuyenMaiChietKhau : frmTemplete1
    {
        #region Thuộc tính
        private clsKhuyenMaiBUS KhuyenMaiBus = new clsKhuyenMaiBUS();
        #endregion

        public frmKhuyenMaiChietKhau()
        {
            InitializeComponent();
            uct_Save.Save.Click += new EventHandler(btn_Save_Click);
        }

        private void btnThoat_Click(object sender, EventArgs e)
        {
            DongCuaSo();
        }

        #region Phím tắt
        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            //Thoát 
            if (keyData == Keys.Escape)
            {
                DongCuaSo();
            }
            else if (keyData == (Keys.Control | Keys.S) && uct_Save.Enabled)
            {
                btn_Save_Click(null, null);
            }
            return base.ProcessCmdKey(ref msg, keyData);
        }

        private void DongCuaSo()
        {
            try
            {
                this.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Lỗi kết nối cơ sở dữ liệu.", "Thông báo lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        #endregion

        private void btn_Save_Click(object sender, EventArgs e)
        {
            try
            {
                string Error=string.Empty;
                if (KiemTra(ref Error))
                {
                DialogResult result = MessageBox.Show("Bạn có thật sự muốn Cập nhật Khuyến mãi theo hình thức chiết khấu không?", "Xác nhận thông tin", MessageBoxButtons.YesNo);
                if (result == DialogResult.Yes)
                {
                    CSQLServer.BeginTran();
                    if (KhuyenMaiBus.CapNhatKhuyenMaiDongTruocSauThang((Double)Decimal.Parse(txtKhuyenMaiDongTruocSauThang.Text)))
                    {
                        if (KhuyenMaiBus.CapNhatKhuyenMaiDongTruocMuoiHaiThang((Double)Decimal.Parse(txtKhuyenMaiDongTruocMuoiHaiThang.Text)) )
                        {
                            if (KhuyenMaiBus.CapNhatKhuyenMaiSinhNhatVaDongMuoiHaiKy((Double)Decimal.Parse(txtKhuyenMaiSinhNhatVaDongMuoiHaiKy.Text)))
                            {
                                CSQLServer.Commit();
                                MessageBox.Show("Cập nhật Khuyến mãi theo hình thức chiết khấu thành công!", "Thông báo lỗi", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            }
                            else
                            {
                                CSQLServer.RollBack();
                                MessageBox.Show("Cập nhật Khuyến mãi theo hình thức chiết khấu không thành công. Xin vui lòng thử lại", "Thông báo lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            }
                        }
                        else
                        {
                            CSQLServer.RollBack();
                            MessageBox.Show("Cập nhật Khuyến mãi theo hình thức chiết khấu không thành công. Xin vui lòng thử lại", "Thông báo lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                    else
                    {
                        CSQLServer.RollBack();
                        MessageBox.Show("Cập nhật Khuyến mãi theo hình thức chiết khấu không thành công. Xin vui lòng thử lại", "Thông báo lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                }
                else
                {
                    MessageBox.Show("Xin vui lòng nhập: \r\n " + Error, "Thông báo lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            catch (Exception Loi)
            {
                CSQLServer.RollBack();
                MessageBox.Show("Lỗi kết nối cơ sở dữ liệu: " + Loi.Message, "Thông báo lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void frmKhuyenMaiChietKhau_Load(object sender, EventArgs e)
        {
            try
            {
                lblTitle.Text = "Khuyến mãi theo hình thức chiết khấu";
                Double KhuyenMaiDongTruocSauThang = KhuyenMaiBus.KhuyenMaiDongTruocSauThang();
                txtKhuyenMaiDongTruocSauThang.Text = clsSupport.CurrencyNumber(KhuyenMaiDongTruocSauThang.ToString());
                Double KhuyenMaiDongTruocMuoiHaiThang = KhuyenMaiBus.KhuyenMaiDongTruocMuoiHaiThang();
                txtKhuyenMaiDongTruocMuoiHaiThang.Text = clsSupport.CurrencyNumber(KhuyenMaiDongTruocMuoiHaiThang.ToString());
                Double KhuyenMaiSinhNhatVaDongMuoiHaiKy = KhuyenMaiBus.KhuyenMaiSinhNhatVaDongMuoiHaiKy();
                txtKhuyenMaiSinhNhatVaDongMuoiHaiKy.Text = clsSupport.CurrencyNumber(KhuyenMaiSinhNhatVaDongMuoiHaiKy.ToString());
            }
            catch (Exception Loi)
            {
                MessageBox.Show("Lỗi kết nối cơ sở dữ liệu: " + Loi.Message, "Thông báo lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            SetPermission();
        }

        private bool KiemTra(ref string Error)
        {
            Decimal KhuyenMaiDongTruocSauThang;
            Decimal KhuyenMaiDongTruocMuoiHaiThang;
            int KhuyenMaiSinhNhatVaDongMuoiHaiKy;
            if (!Decimal.TryParse(txtKhuyenMaiDongTruocSauThang.Text, out KhuyenMaiDongTruocSauThang) || KhuyenMaiDongTruocSauThang <= 0)
            {
                Error = "Khuyến mãi đóng trước 6 tháng thì được hưởng phải là số dương. \r\n ";
                return false;
            }
            if (!Decimal.TryParse(txtKhuyenMaiDongTruocMuoiHaiThang.Text, out KhuyenMaiDongTruocMuoiHaiThang) || KhuyenMaiDongTruocMuoiHaiThang <= 0)
            {
                Error += "Khuyến mãi đóng trước 12 tháng thì được hưởng phải là số dương.  \r\n ";
                return false;
            }
            if (!int.TryParse(txtKhuyenMaiSinhNhatVaDongMuoiHaiKy.Text, out KhuyenMaiSinhNhatVaDongMuoiHaiKy) || !(KhuyenMaiSinhNhatVaDongMuoiHaiKy >= 0 && KhuyenMaiSinhNhatVaDongMuoiHaiKy <= 100))
            {
                Error += "Phần trăm khuyến mãi sinh nhật và đóng tiền 12 kỳ phải là số dương và nhỏ hơn hoặc bằng 100%.";
                return false;
            }
            return true;
        }

        private void SetPermission()
        {
            uct_Save.Enabled = clsUser.LayThongTinPhanQuyen("ChietKhau").ChucNang.Sua;
        }


    }
}